package de.dubiel.plung.client.gin;

import com.google.gwt.inject.client.GinModules;
import com.google.gwt.inject.client.Ginjector;
import com.google.gwt.place.shared.PlaceController;
import com.google.web.bindery.event.shared.EventBus;

import de.dubiel.plung.client.pages.account.AccountView;
import de.dubiel.plung.client.pages.game.GameView;
import de.dubiel.plung.client.pages.start.StartView;
import de.dubiel.plung.client.play.GameManager;
import de.dubiel.plung.client.services.UserServiceAsync;

@GinModules(ClientModule.class)
public interface ClientGinjector extends Ginjector {
    EventBus getEventBus();

    PlaceController getPlaceController();
    
    UserServiceAsync getUserService();

    StartView getStartView();

    GameView getGameView();

    AccountView getAccountView();

    UserProvider getUserProvider();
    
    GameManager getGameManager();
}